<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 三目运算符

/* 
  写法：  `布尔值表达式 ? 表达式1 : 表达式2`

  运行机制：
    若「布尔值表达式」为「真」，1)执行 表达式1，  2)整个三目运算符表达式，返回值为 表达式1 的结果值
    若「布尔值表达式」为「假」，1)执行 表达式2，  2)整个三目运算符表达式，返回值为 表达式2 的结果值
*/

/* 案例1：
  var x = true 
    ? console.log(123)
    : console.log(456);

  console.log('x', x); // 变量 x 的值为 undefined，因为 console.log(123) 的返回值为 undefined。
    // 注：等同于 var x = console.log(123); console.log(x)
*/

/* 案例2：
  0 ? alert('11') : alert('22');  // 执行结果 页面弹框为  `22`
*/


// var x = 1 ? 77 : 88;  // x 的值为 77


// 重申 表达式的定义： 但凡能放到 等号右侧，即为表达式；
  // 但凡是表达式，就有返回值。
var x = console.log('123 -  - ');

console.log(x); // x 的值为 undefined
</script>